#include "utils.h"
using namespace std;

string padLeft(const std::string& str, int w, const char paddingChar)
{
	string result = str;

    if(w > str.size())
        result.insert(0, w - str.size(), paddingChar);

	return result;
}

string padRight(const std::string& str, int w, const char paddingChar)
{
	string result = str;

    if(w > str.size())
        result.insert(str.size(), w - str.size(), paddingChar);

	return result;
}

int toInt(char c)
{
	return c - '0';
}

char toChar(int n)
{
	return n + '0';
}

std::string trim(const std::string& s, char trimmedChar)
{
	int pos1 = s.find_first_not_of(trimmedChar);
	int pos2 = s.find_last_not_of(trimmedChar);

	return (pos1 == -1)
		? ""
		: s.substr(pos1, pos2 - pos1 + 1);
}

std::string trimLeft(const std::string& s, char trimmedChar)
{
	int pos1 = s.find_first_not_of(trimmedChar);

	return (pos1 == -1)
		? ""
		: s.substr(pos1, s.length() - pos1 + 1);
}

std::string trimRight(const std::string& s, char trimmedChar)
{
	int pos2 = s.find_last_not_of(trimmedChar);

	return (pos2 == -1)
		? ""
		: s.substr(0, pos2 + 1);
}